home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1985-08-25 | 127.0 KB | 3,466 lines
T E R M Version 3.10 August 21, 1985 A Terminal Emulator for the TI Professional Computer by Greg Gilley Austin, Texas TERM -- A Terminal Emulator for the TIPC MAIN FEATURES o Supports TI internal modem as well as external modems. o Allows storage of parameter files to automatically set communication parameters for different remotes. o Interrupt driven communications. o Supports xmodem, modem7, or telink file transfer protocol for sending or receiving files. o Allows capture of text to a file. o Allows definition of function keys. o Supports xon/xoff handshaking. o Supports VT100/VT52 emulation. o MSDOS 2.0 pathname support. o Easily configurable to work on different machines. o Has script files for automatically logging on to remote systems. FOREWORD This following disclaimer is something I dislike, but unfortunately is necessary. This program is provided on an "as is" basis without warranty of any kind, expressed or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to quality and performance of this program is with you. Should the program prove defective, you assume the entire cost of all necessary repair, servicing, or correction. In no event will the author be liable to you for any damages, including any lost profits, lost savings, or other incidental or consequential damages arising out of the use or inability to use this program. This warranty gives you specific legal rights, and you may have other rights which may vary from state to state. Some states do not allow the exclusion of implied warranties or exclusion of liability for incidental or consequential damages so the above may not apply to you. You acknowledge that you have read this agreement, understand it, and agree to be bound by its terms and conditions. You further agree that it is the complete and exclusive statement of the agreement between us, which supercedes any proposal or prior agreement, oral or written, and any other communications between us. I am not the ogre that the above would lead you to believe. I am a very reasonable person and am open to suggestions for improvements or fixes. I must protect myself, however, thus the disclaimer. Several people have helped me with my work on TERM -- finding bugs, making suggestions, etc. I would like to thank Ronny Horn, Duane Voth, Marc Newman, Lester Wetherell and most of all my wife Karen for putting up with me while I work on TERM. Please report any problems, complaints, (praise??), to: Greg Gilley c/o JIMNET RBBS-PC 512-837-0953 24hrs 300/1200 I will respond as I am able. FOREWORD I am distributing TERM as user-supported software. This means that I am hoping that the people who use this software will like it enough to pay for it even though I have no way to know who has it. If you get TERM off a bulletin board, I suggest $15. If you cannot get it from a bulletin board, for $30 I will send TERM to you on a floppy disk with a printed copy of the documentation. Be sure to include your name and address so I can send you update notices. Please send your responses to: Greg Gilley 10926 Jollyville Rd #1407 Austin,TX 78759 I will keep a list of users who do contribute and notify them of bug fixes, new releases, new products, etc. Many trademarks are used through out this document. I will list and acknowledge them here. MSDOS is a trademark of Microsoft Corporation. DEC, VAX and VT are trademarks of Digital Equipment Corporation. Smartmodem is a trademark of Hayes Microcomputer Products. NOTE: User-supported software does not mean public domain! I NOTE: User-supported software does not mean public domain! I NOTE: User-supported software does not mean public domain! I still reserve all rights on TERM. TERM may not be resold or sold still reserve all rights on TERM. TERM may not be resold or sold still reserve all rights on TERM. TERM may not be resold or sold except by me. except by me. except by me. Copyright (c) 1985 by Glenn Gilley All Rights Reserved FOREWORD T A B L E O F C O N T E N T S T A B L E O F C O N T E N T S T A B L E O F C O N T E N T S _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1. RELEASE INFORMATION........................................4 1. RELEASE INFORMATION........................................4 1. RELEASE INFORMATION........................................4 1.1. New Features..........................................4 1.1. New Features..........................................4 1.1.1. New Features to Version 3.10...................4 1.1.1. New Features to Version 3.10...................4 1.1.2. New Features to Version 3.00...................5 1.1.2. New Features to Version 3.00...................5 1.1.3. New Features to Version 2.62...................7 1.1.3. New Features to Version 2.62...................7 1.2. Bug Fixes.............................................8 1.2. Bug Fixes.............................................8 1.2.1. Bug Reports, Problems and Fixes................8 1.2.1. Bug Reports, Problems and Fixes................8 1.2.1.1. Characters lost __________ ____.......................8 1.2.1.2. Xmodem transfers ______ _________......................8 1.2.1.3. Drive recognition _____ ___________.....................8 1.2.1.4. Save file ____ ____.............................8 1.2.1.5. Answering the phone _________ ___ _____...................8 1.2.1.6. VT100 emulation _____ _________.......................8 1.3. Known Problems........................................9 1.3. Known Problems........................................9 1.4. Future Plans.........................................10 1.4. Future Plans.........................................10 2. EXECUTION.................................................11 2. EXECUTION.................................................11 2. EXECUTION.................................................11 3. MAIN SCREEN...............................................12 3. MAIN SCREEN...............................................12 3. MAIN SCREEN...............................................12 3.1. Main Menu............................................12 3.1. Main Menu............................................12 3.2. Configuration........................................13 3.2. Configuration........................................13 3.2.1. Port Number...................................13 3.2.1. Port Number...................................13 3.2.2. Status Intensity..............................13 3.2.2. Status Intensity..............................13 3.2.3. Display Intensity.............................13 3.2.3. Display Intensity.............................13 3.2.4. Default Pathspec for File Receives............13 3.2.4. Default Pathspec for File Receives............13 3.2.5. Default Pathspec for File Transmits...........13 3.2.5. Default Pathspec for File Transmits...........13 3.2.6. Default Pathspec for Parameter Files..........14 3.2.6. Default Pathspec for Parameter Files..........14 3.2.7. Default Save filename.........................14 3.2.7. Default Save filename.........................14 3.2.8. Dialing (M)anual (A)utomatic..................14 3.2.8. Dialing (M)anual (A)utomatic..................14 3.2.9. Dial type (P)ulse (T)one......................14 3.2.9. Dial type (P)ulse (T)one......................14 3.2.10. Redial Delay.................................14 3.2.10. Redial Delay.................................14 3.2.11. Modem Autodial control string................14 3.2.11. Modem Autodial control string................14 3.2.12. Dialing timeout (0-60).......................15 3.2.12. Dialing timeout (0-60).......................15 3.2.13. Number of bells to ring after connection.....15 3.2.13. Number of bells to ring after connection.....15 3.3. PARAMETER SETUP......................................16 3.3. PARAMETER SETUP......................................16 3.3.1. Description...................................16 3.3.1. Description...................................16 3.3.2. Baud Rate.....................................16 3.3.2. Baud Rate.....................................16 3.3.3. Parity........................................17 3.3.3. Parity........................................17 3.3.4. Strip Parity Bit..............................17 3.3.4. Strip Parity Bit..............................17 3.3.5. Wordsize......................................17 3.3.5. Wordsize......................................17 3.3.6. Stopbits......................................17 3.3.6. Stopbits......................................17 3.3.7. Busy Handling.................................17 3.3.7. Busy Handling.................................17 3.3.8. Terminal Type.................................17 3.3.8. Terminal Type.................................17 3.3.9. Phone.........................................17 3.3.9. Phone.........................................17 3.4. Function Keys........................................19 3.4. Function Keys........................................19 3.5. Establishing Connections.............................20 3.5. Establishing Connections.............................20 3.5.1. Dialing.......................................20 3.5.1. Dialing.......................................20 3.5.2. Multidialing..................................21 3.5.2. Multidialing..................................21 FOREWORD 4. TERMINAL MODE.............................................22 4. TERMINAL MODE.............................................22 4. TERMINAL MODE.............................................22 4.1. Status Line..........................................22 4.1. Status Line..........................................22 4.2. Function Keys........................................22 4.2. Function Keys........................................22 5. SCRIPT FILES..............................................24 5. SCRIPT FILES..............................................24 5. SCRIPT FILES..............................................24 5.1. String Variables.....................................24 5.1. String Variables.....................................24 5.2. Script File Commands.................................25 5.2. Script File Commands.................................25 5.3. Script Expressions...................................31 5.3. Script Expressions...................................31 5.4. Variables............................................32 5.4. Variables............................................32 5.5. Functions............................................33 5.5. Functions............................................33 5.6. Automatic Script Generation..........................34 5.6. Automatic Script Generation..........................34 5.7. Example Script Files.................................35 5.7. Example Script Files.................................35 6. FILE TRANSFERS............................................36 6. FILE TRANSFERS............................................36 6. FILE TRANSFERS............................................36 6.1. Xmodem, Modem7, Telink...............................36 6.1. Xmodem, Modem7, Telink...............................36 6.2. ASCII File Transfers.................................38 6.2. ASCII File Transfers.................................38 6.2.1. ASCII file send...............................38 6.2.1. ASCII file send...............................38 6.2.2. ASCII file receive............................39 6.2.2. ASCII file receive............................39 7. TERMINAL EMULATION........................................40 7. TERMINAL EMULATION........................................40 7. TERMINAL EMULATION........................................40 7.1. VT100 Escape Sequences Supported.....................40 7.1. VT100 Escape Sequences Supported.....................40 7.2. VT52 Escape Sequences Supported......................41 7.2. VT52 Escape Sequences Supported......................41 7.3. Cursor Keys..........................................41 7.3. Cursor Keys..........................................41 7.4. Numeric Keypad.......................................42 7.4. Numeric Keypad.......................................42 Appendices A. 'C' Language characters...................................43 A. 'C' Language characters...................................43 A. 'C' Language characters...................................43 B. LINE EDITING FEATURES.....................................44 B. LINE EDITING FEATURES.....................................44 B. LINE EDITING FEATURES.....................................44 C. MSDOS CRITICAL ERROR HANDLING.............................45 C. MSDOS CRITICAL ERROR HANDLING.............................45 C. MSDOS CRITICAL ERROR HANDLING.............................45 D. EXTERNAL MODEMS...........................................46 D. EXTERNAL MODEMS...........................................46 D. EXTERNAL MODEMS...........................................46 INDEX.....................................................48 INDEX.....................................................48 INDEX.....................................................48 L I S T O F T A B L E S L I S T O F T A B L E S L I S T O F T A B L E S _ _ _ _ _ _ _ _ _ _ _ _ 5-1: Operators in Order of Descending Priority................32 5-1: Operators in Order of Descending Priority................32 5-1: Operators in Order of Descending Priority................32 7-1: Cursor Keys..............................................41 7-1: Cursor Keys..............................................41 7-1: Cursor Keys..............................................41 7-2: Numeric Keypad Codes.....................................42 7-2: Numeric Keypad Codes.....................................42 7-2: Numeric Keypad Codes.....................................42 D-1: Smartmodem switch settings...............................46 D-1: Smartmodem switch settings...............................46 D-1: Smartmodem switch settings...............................46 NEW FEATURES 1. RELEASE INFORMATION 1. RELEASE INFORMATION 1. RELEASE INFORMATION 1.1. New Features 1.1. New Features NOTE: Many of the new functions in TERM have setup values that would not be frequently changed. To save code, these values are not input from the standard screens. Instead, the configuration file (TERM.CFG) and parameter files (YOURFILE.TRM) must be edited and lines inserted. Any standard text editor may be used (as long as it does not insert formatting control characters, Wordstar in document mode for example). Edlin will work fine. In the current release of TERM, it is not acceptable to insert extra blanks between the characters. Examples will be shown to illustrate the use of the parameters. 1.1.1. New Features to Version 3.10 1.1.1. New Features to Version 3.10 Several new things added to version 3.10. The major changes have to do with script files. A lot of new script file commands were added. Some were added because of the addition of the ability to redefine function keys. It would be redundant to list all of the changes here, so see the section on SCRIPT FILES. As I just mentioned, the function keys used while connected to a remote (ie. F1:Sav, F2:NuSav, etc.) can be redefined and can execute script commands. See the section on FUNCTION KEYS. An automatic (or at least semi-automatic) script file generator has been added. Once the learn mode has been entered, TERM will monitor the characters from the remote and the responses and generate a script file. Multiple script commands can be specified on a single line by separating the commands with a semicolon (;). String variables have been added to script commands to pave the way for more powerful scripts. There is an INCOMPATIBILITY between script files in version 3.10 and previous versions. Script files will not abort if a pattern match fails. Instead, the failure must be handled in the script file. If you want the match failures to abort the scripts (for compatibility with earlier versions), specify an option of -a on the command line when TERM is executed. External modem support has been improved (I hear a few sighs of relief out there). Redialing and multidialing are now both supported with external modems. In addition, if the modem returns busy signals TERM can recognize them. See the section on ESTABLISHING CONNECTIONS. TERM 3.10 08/21/85 page 1 NEW FEATURES The external modem initialization string has been added to the configuration menu. Turns out it will be used more often than I had originally thought. The default initial dialing timeout (originally fixed at 20 seconds) can now be modified in the configuration menu. While looking at the list of parameter files after F2 or F3 from main menu, pressing the DEL key will allow deleting the parameter file. The corresponding script file will be deleted also. While sending or receiving files, the display of sent/received data can be toggled on and off. The view mode, ASCII or hex, can be toggled also. Also a function has been added to allow TERM to hang up after a file transfer has completed. This allows you to start big transfers and go to bed. Also, the number of bells to ring after a connection (specified in the configuration menu), is used when the file transfer is completed. If you are like me, you start a transfer and go do something more interesting while it proceeds. See the section on FILE TRANSFERS for pertinent information. A non-standard escape sequence to control the cursor (on, off, blink) was added to support the Octacomm board for TI minicomputers. See the section on TERMINAL EMULATION. The NuSav command (F2 key) has been improved and the changes will hopefully eliminate the problems that have been occurring. If the file already exists, the prompt for (A)ppend, (R)eplace will reflect it. The default mode is now append. DOS 1.25 is no longer supported. The code required to run under DOS 1.25 was too large to justify. 1.1.2. New Features to Version 3.00 1.1.2. New Features to Version 3.00 Version 3.00 adds several new functions to TERM. The big difference is adding the Modem7 and Telink file transfer protocols. Modem7 is a protocol used in the CP/M world. Telink was invented by Tom Jennings, author of the FIDO bulletin board system. Modem7 and Telink both allow batch mode file transfers. This means that wild card specifications (ie. *.exe) are allowed. The transfer proceeds until all files have been sent. Telink adds the additional ability to send across exact file sizes and the correct date and time for the file. A side effect of these new protocol additions (caused by rewriting and rethinking code), is that the problem with the RBBS-PC boards goes away. In previous versions TERM would not accept the first end-of- transmission character it received and RBBS-PC would not retransmit. Now, TERM uses the number of blocks to detect when an end-of-transmission is valid. If you do specify too many blocks, however, TERM will time out and close the file normally. TERM 3.10 08/21/85 page 2 NEW FEATURES Also added (by popular demand) is an ascii file send (F3 key). It will hopefully meet most of everyone's needs. It has options which make it relatively easy to upload messages to editors on systems. The default parameters can be saved so that once set up, do not need to be reworked. The F4 key will save the contents of the current screen to the save file. This is for the stuff that goes by before you think to hit the save key. The PRNT key will toggle output to the printer on and off. This will echo any characters that are received from the remote to the printer (PRN). Direct connection capability has been added. It works a little different than you might expect. See the section on establishing connections for an explanation. Answer mode has been improved. Answering at 300 baud did not work before, but it has been repaired. Neither the answering nor the calling machine need set it in half-duplex. All echoing is handled automatically. Still no unattended file transfers though. Maybe next time. Added some code to do pathname validation. I know I've typed in the wrong names a few times. Its operation is a little inconsistent with normal operation of the interface (errors come up in a window), but I'm just experimenting. The function key definition menu is now accessible from the connection screen. F7 will bring it up. Should have been there a long time ago, but some people are just born lazy. An external modem initialization string has been added. This string is sent once the first time the modem is used. This can be used to switch modem modes, set ring counts, etc. External modem support still needs work though. No autoanswer yet. Abort has been added to critical error handling with some special provisions for printers. See the section on MSDOS CRITICAL ERROR HANDLING for specific information. I'm dropping MSDOS 1.25 support next release. The code is getting too large to justify. Besides, those of you who do not have DOS version 2.1 should get it. Lots of nice features. TERM 3.10 08/21/85 page 3 NEW FEATURES 1.1.3. New Features to Version 2.62 1.1.3. New Features to Version 2.62 Menu selection of parameter files was added. I never could remember all of the parameter files I had set up. Now I don't have to. Parameter files now require an extension of .trm. See the section on parameter files for more details. In tandem with menu selection is a feature I am calling multidialing. (Couldn't come up with anything better). This allows you to set up a list of parameter files which will be cycled through. Each parameter file will be processed until a connection is established. This feature comes in real handy if there are several bulletin boards that you like to visit. See the parameter file section. TERM 3.10 08/21/85 page 4 BUG FIXES 1.2. Bug Fixes 1.2. Bug Fixes 1.2.1. Bug Reports, Problems and Fixes 1.2.1. Bug Reports, Problems and Fixes 1.2.1.1. Characters lost __________ ____ Several people have reported problems with characters being lost when connected. Most of the time this is the result of improper parity settings. On almost all of the bulletin boards, you can use 8 bits, strip parity bit, no parity, one stop bit. Note: if it is an RBBS-PC board, you may want to disable parity bit stripping so you can receive the graphic characters. 1.2.1.2. Xmodem transfers ______ _________ Xmodem transfers had some small problems that could cause transfers to be aborted. 1.2.1.3. Drive recognition _____ ___________ When checking for valid drive identifiers, drives greater than F were not flagged properly. 1.2.1.4. Save file ____ ____ When saving to a save file, and disk space ran out, the save was not properly aborted. 1.2.1.5. Answering the phone _________ ___ _____ After dialing when the retry popup was on the screen, TERM would answer the phone if it rang. 1.2.1.6. VT100 emulation _____ _________ There was a bug in VT100 emulation that would allow the cursor to be placed on line 25 (the status line). TERM 3.10 08/21/85 page 5 KNOWN PROBLEMS 1.3. Known Problems 1.3. Known Problems 1. VT100/VT52 emulation. The VT100/VT52 emulation is incomplete. Most of the major functions are implemented. It has been expanded to the point that the EDT editor on a VAX will work properly. If you use it and find a problem, please let me know so I can fix it. 2. Errors. TERM does not do a great deal of error checking. Since I know it inside-out, I do not need much error checking. But in the interest of other users, I will attempt to improve error handling. TERM 3.10 08/21/85 page 6 FUTURE PLANS 1.4. Future Plans 1.4. Future Plans TERM is sort of my pet project. My personal version undergoes a great many changes. I will try to keep new releases organized to protect your sanity. I hope to add sometime (in addition to bug fixes): Full VT100/52 emulation. Kermit file transfer protocol support. More error checking. TERM is starting to get rather large. I've optimized it as far down as I can, but it's still growing. This means I either have to start overlaying it, or just let it get bigger. I'd rather not overlay it, but that depends on how many people have less than 256K memory. If the majority have at least 256K, then I will not have to overlay it. I will not release source code any time soon. Please, don't ask. TERM 3.10 08/21/85 page 7 TERM 2. EXECUTION 2. EXECUTION 2. EXECUTION TERM is a general purpose communications program. TERM is loosely modeled around COMTTY to make it easier to use for those people who already own COMTTY. An attempt was made in TERM to provide a consistent interface. Pressing F12 will abort you out of most anything. In a couple of cases, the return key is required to 'continue'. If an invalid pathname is entered at a prompt, a popup window with an error message is displayed. Pressing the return key will return to the line in error. When information is required from the user, it is usually elicited through a "window". See Appendix B , LINE EDITING FEATURES section for more information on input. When TERM is executed, it checks for the existence of a file called TERM.CFG. It reads information about the particular machine it is running on from this file: which comm port to use, where files should go, etc. If this file does not exist, the program automatically switches to the SET TERM CONFIGURATION menu. Otherwise, the main screen comes up. When bringing TERM up, a parameter file can be specified if desired. The command TERM filename will attempt to connect to the parameter file "filename". Script files are normally automatically executed after TERM connects to the remote. If you do not wish script files to be executed during this session of TERM, specify an option of -n on the command line. Example: TERM -n filename You must quit TERM and reenter it to allow scripts to be executed again. In pre 3.10 versions of TERM, script files would abort if a MATCH or PROMPT command failed. Version 3.10 requires that the script file handle the match failure. If you wish the script file to abort when a pattern match fails, specify an option of -a on the command line. An environment variable can be set (in MSDOS 2.0) to tell TERM where the file TERM.CFG is located. This allows TERM to be executed from any drive or from any subdirectory. The variable is called TERMCFG. Just issue the command set TERMCFG=e:\usr\term (your subdirectory) from the MSDOS prompt (or in a batch file). TERM will then search the environment to find TERMCFG and locate the configuration file. TERM 3.10 08/21/85 page 8 MAIN SCREEN 3. MAIN SCREEN 3. MAIN SCREEN 3. MAIN SCREEN 3.1. Main Menu 3.1. Main Menu The main screen comes up with a title, and a status line across the bottom of the screen. The status line documents which functions are available and which function key to press. F2:Setup -- Takes you to the parameter setup menu which allows parameter files to be initialized. This must be done before connections can be established. F3:Start -- Starts the connection sequence. A menu of parameter files pops up. Use the arrow keys to move the cursor on to the name of the desired parameter file. If a character is pressed, the cursor will be moved to the first parameter file with that character as the first letter of its name. Press the RETURN key to select the parameter file. TERM then attempts to connect to the remote system. To initiate multidialing, the procedure is much the same. Move the cursor to the desired parameter file and press the space bar. An asterik (*) will appear beside the name. Pressing the space bar on a name which has already been selected will deselect it. Repeat this procedure until the desired set of names (up to 10) is selected. Pressing the RETURN key will start the multidialing. Each parameter file will be processed until a connection is established. There is no time limit placed on multidialing. If it cannot get a connection, it will dial all night! F5:Reconfigure -- Takes you to the set TERM configuration menu. Allows configuration parameters (screen color, port, etc.) to be changed. The configuration file (TERM.CFG) is updated with the new information. F7:Fkeys -- Allows globally redefining almost all function keys used in terminal mode while connected to a remote system. Redefining the keys here will cause them to be in effect for all of the parameter files. The key values will be saved unless the setup menu is aborted (F12). See the section on FUNCTION KEYS for a complete description. F8:DOS -- Puts you in MSDOS without having to exit TERM first. Typing EXIT in MSDOS will return you to TERM. F12:Exit -- Exit TERM and return to MSDOS. TERM 3.10 08/21/85 page 9 CONFIGURATION 3.2. Configuration 3.2. Configuration When this screen comes up, there will be an initial delay. This is because TERM is checking the machine for the existence of comm boards and internal modems. The boards that exist will be displayed. The parameters that are to be specified follow: 3.2.1. Port Number 3.2.1. Port Number This parameter is in the range 1 to 4 and will specify which comm port will be used by TERM. The list of installed comm boards/ modems is given to make selection easier. TERM will automat- ically determine if the chosen port is an internal modem. 3.2.2. Status Intensity 3.2.2. Status Intensity This is the intensity (on a monochrome monitor) or color for the status line which appears at the bottom of the screen. It may be set to blue, red, magenta, green, cyan, yellow, or white. 3.2.3. Display Intensity 3.2.3. Display Intensity This is the intensity (on a monochrome monitor) or color for the display portion of the screen. All characters received will be displayed in this color (unless changed by the received characters). 3.2.4. Default Pathspec for File Receives 3.2.4. Default Pathspec for File Receives This is the pathspec or drive which gives the destination of files which are downloaded using TERM. The actual filename is specified at the time of the download. The receive path is prepended to the filename. Example: Default Pathspec for File Receives : e:\usr\comm\recv\ or Default Pathspec for File Receives : a: 3.2.5. Default Pathspec for File Transmits 3.2.5. Default Pathspec for File Transmits This is the pathspec or drive which gives the source location of files which are uploaded using TERM. The actual filename is specified at the time of the download. The receive path is prepended to the filename. Example: Default Pathspec for File Transmits : e:\usr\comm\send\ or Default Pathspec for File Transmits : b: TERM 3.10 08/21/85 page 10 CONFIGURATION 3.2.6. Default Pathspec for Parameter Files 3.2.6. Default Pathspec for Parameter Files This is the pathspec or drive which gives the location of the parameter files which TERM uses to store information on the remote systems. The parameter filename is input when the parameter file is setup. The parameter path is prepended to the filename to select its final destination. Script files are also stored using this path. Example: Default Pathspec for Parameter Files : e:\usr\comm\param\ or Default Pathspec for Parameter Files : a: 3.2.7. Default Save filename 3.2.7. Default Save filename This is the filespec (including drive and/or MSDOS 2.0 pathspec) for the default save file. TERM allows received characters to be saved in a file. This is the file which will be used each time TERM is executed. If the file already exists, TERM will append the new data to the existing file. This file name may be changed during a connection with the NuSav command (F2). Example: Default Save filename : e:\usr\comm\term\term.sav or Default Save filename : a:term.sav 3.2.8. Dialing (M)anual (A)utomatic 3.2.8. Dialing (M)anual (A)utomatic If an internal modem is being used, TERM can automatically dial the number and connect to the remote. If an external modem is used which uses ASCII commands to dial, TERM can dial it as well. If manual dialing is selected, TERM will display the phone number for reference. 3.2.9. Dial type (P)ulse (T)one 3.2.9. Dial type (P)ulse (T)one Selects dialing mode for the TI internal modem. Note that this mode can be switched on an internal modem during dialing by placing a 'T' for tone dialing or a 'P' for pulse dialing in the phone number. (See phone number under parameter setup). 3.2.10. Redial Delay 3.2.10. Redial Delay If an intelligent modem is being used, TERM can automatically redail a number. The redial delay specifies the time (in seconds) to wait before attempting to dial the number again. 3.2.11. Modem Autodial control string 3.2.11. Modem Autodial control string This prompt will only appear if an external modem is being used. This is the control string that causes the modem to dial. On Smartmodem(TM) compatible modems, this is 'ATDT' (no quotes). 'C' language control strings may be entered (See appendix A). TERM 3.10 08/21/85 page 11 CONFIGURATION 3.2.12. Dialing timeout (0-60) 3.2.12. Dialing timeout (0-60) This is the default timeout in seconds when dialing a number. If a connection is not established after this time period, TERM will abort the connection attempt. 3.2.13. Number of bells to ring after connection 3.2.13. Number of bells to ring after connection This was added to aide those who set redial on 999 and go have lunch. This will ring the bell the number of times specified or until a key is pressed. There is a half-second delay between each bell. TERM 3.10 08/21/85 page 12 PARAMETER SETUP 3.3. PARAMETER SETUP 3.3. PARAMETER SETUP Parameters are stored in files and include information needed by TERM for connecting to each computer. Information that is variable from computer to computer (baud, parity, etc.) are stored in these files. To access the parameter file setup menu, press the F2 key on the main menu. A menu of the available parameter files pops up. Use the arrow keys to move the cursor onto the desired parameter file or to <NEWFILE> if no initial parameters are desired. Press the RETURN key to select the parameter file. Now a menu screen comes up. NOTE: Versions 3.00 of TERM and higher require that parameter files have an extension of .trm. To make old parameter files available, simply rename them to have an extension of .trm. For example, if no extension was used previously, then the command ren *. *.trm should make all the old parameter files available. F2:Parameters -- Puts up a parameter setup window which allows specifying parameters for individual connections. F4:Function Keys-- Allows the user to access the function key definition screen. Keys defined at this point will become active when a connection is established. They are in effect only for the duration of the connection. F5:Save Parameters -- The filename specification for the parameter file. This will be used when the start option is selected from the main screen. F12:Abort -- Abort to the MAIN MENU. When the parameter setup window comes up, the following information will be elicited: 3.3.1. Description 3.3.1. Description A thirty character description of the destination computer which is displayed when an attempt is made to connect. 3.3.2. Baud Rate 3.3.2. Baud Rate The baud rate for the connection. TERM 3.10 08/21/85 page 13 PARAMETER SETUP 3.3.3. Parity 3.3.3. Parity Allows selection of no parity, odd, even, mark or space parity. The best parity setting (will work with most systems) is no parity. 3.3.4. Strip Parity Bit 3.3.4. Strip Parity Bit This is used to strip the parity bit (bit 7) off incoming bytes before they are displayed. This does not affect xmodem transfers. On non-RBBS-PC boards, it is best to strip off this bit. In many cases, the remote system may be sending data with parity checking. 3.3.5. Wordsize 3.3.5. Wordsize Number of data bits in a word (7 or 8). The best value to use is 8 bits. 3.3.6. Stopbits 3.3.6. Stopbits Number of stopbits in a data word (1 or 2). The recommended value is 1 stopbit. 3.3.7. Busy Handling 3.3.7. Busy Handling Allows the connecting system to halt output from your system and vice-versa. Helps to prevent data from being lost. Xon-Xoff (DC1-DC3) handling is supported. This feature is not normally supported on microcomputer based bulletin boards. However, large systems such as Compuserve do use xon/xoff busy handling. 3.3.8. Terminal Type 3.3.8. Terminal Type The type of terminal to be emulated: tty (normal mode), VT100, or VT52. At this time, this emulation is incomplete. (See the TERMINAL EMULATION section for a list of supported features). On some RBBS-PC bulletin boards, "ANSI graphics" are supported. This is equivalent to VT100 on TERM. Note that for graphic characters to be displayed properly, the settings should be no parity, do not strip parity bit, 8 data bits and 1 stop bit. 3.3.9. Phone 3.3.9. Phone The phone number for the remote computer. Digits (0-9), separator (-), wait for dial tone (+), pause for two seconds (@), phone control (#,*), tone dialing mode (T), and pulse dialing mode (P) are supported. Note that the preceding characters are for use with a TI internal modem only. If an external modem is used, insert the appropriate control characters for that modem. For Smartmodem compatible modems, a comma (,) acts as a pause in dialing and should be used to wait for dial tones, etc. Control characters (non-displayable) may be specified in the 'C' programming language format. A backslash followed by a 'b', 'r', 'n', etc. or and x and a two-digit hexadecimal number (ie., \x0b for a form feed). See appendix A. TERM 3.10 08/21/85 page 14 PARAMETER SETUP Example: If your home phone is pulse (rotary) dialing then select pulse dialing mode during Configuration setup. To use a service such as Sprint or MCI the phone number would be similar to the following: Phone number : 5551313+T123456789+1235558989 The first number is the local number of the service. The '+' waits for a dial tone. The 'T' switches to tone dialing (required for most services). The password (account number) follows and then another pause. The final number is the telephone number desired. If the phone number is omitted then TERM will answer the phone. This mode is not intended for unattended operation so it will only answer one call. This allows two users to transfer files without an RBBS type program. TERM 3.10 08/21/85 page 15 FUNCTION KEYS 3.4. Function Keys 3.4. Function Keys Function keys are defined at two levels: globally and per parameter file. The parameter file, or local, key definitions override the global definitions. The global key definitions are specified at the MAIN MENU level. The local definitions are entered at the parameter setup menu or during the session. The local definitions are only in effect for the duration of the connection. The function keys, both global and local, are specified through the same menu. When the menu is displayed, it shows the current key definitions. A prompt is displayed for the key name. Pressing F1 at this point will display the list of function key names. The keys are named using the convention of the technical reference manual. After specifying the key name, a prompt is displayed for the value of the function key. If the key has already been assigned, the current value is shown. The key value is a string which is transmitted to the remote system. A pause may be inserted in the string by specifying a '\p' in the string (no quotes). The pause lasts approximately one second. For example: go cis\r\pgo pcs-37\r In specifying function key values, if double quotes (") are entered, they will be transmitted to the remote. This is in contrast to script files which use double quotes to delimit the strings. If the first character of the key value is an "at" sign (@), then the rest of the line is treated as script commands (see the section on SCRIPT FILES). This feature is used to implement the function keys F1-F12 while connected to a remote. Implementing the function keys in this manner allows them to be customized. If, for example, you wanted to automatically start saving to the save file immediately after you specified it, change the value of F2 (from the MAIN MENU) to: @save ; save on Almost all script commands can be executed from function keys. The exceptions are GOTO, LABEL, FAIL, and ABORT. Consult the section on script files for a full list of available commands. TERM 3.10 08/21/85 page 16 ESTABLISHING CONNECTIONS 3.5. Establishing Connections 3.5. Establishing Connections TERM has two modes of connections, through a modem and directly to another machine. If a modem is being used, TERM can automatically dial the number if the modem supports it. For an internal modem, simply specify the phone number when setting up the parameters. See phone number under parameter setup. For an external modem, a little more work is required unless the modem is Smartmodem compatible. Consult appendix D, EXTERNAL MODEMS, for more information on setting up external modems. If the modem requires initialization, an initialization string can be specified in the CONFIGURATION SETUP. This string is sent to the modem once before the first number is dialed. The characters may include the 'C' language convention shown in appendix A. The modem autodial control string is sent immediately before each phone number. For Smartmodem compatible modems this would be 'ATDT' for tone dialing and 'ATDP' for pulse dialing. See phone number under parameter setup. For a direct connection, a different sort of setup is used. To allow the use of a modem in conjunction with a direct connection without having to change the configuration every time, an entry in the parameter file is used. To specify the direct connection port, the "override port", edit the parameter file (just set it up normally first) and specify: opo=1 where the number specified is the comm port number. This port number is in effect only for the duration of this connection. All connections begin the same general way. The Start key (F3) is pressed on the main menu. Then a parameter file which was created using the parameter setup menu is selected. The selection of a parameter file can take place in two ways. 3.5.1. Dialing 3.5.1. Dialing The first way is to move the arrow keys and position the cursor over the name of the desired parameter file. Pressing an alphabetic key will skip to the first file beginning with that letter. Pressing the key again will skip to the next, and so on. Once the cursor is positioned, press the RETURN key to select the name. At this point, TERM will begin the connection process. If the file selected had the override port line included (is a direct connection), then connection is immediate and the terminal mode screen should appear. If the parameter file was not set up for direct connection, then TERM should start the dialing process. TERM 3.10 08/21/85 page 17 ESTABLISHING CONNECTIONS WII delete, parameter file While the list of parameter files is on the screen, the files may be deleted. Position the cursor on the file to be deleted and press the DEL key. A popup window will appear asking for DEL to be pressed again for confirmation. The parameter file (.trm) and the corresponding script file (.spt) will be deleted. The dialing process has a screen which monitors the call's progress. It shows the current state of dialing: dialing, ringing, busy, etc. It shows the amount of time remaining before the call is aborted. Finally it shows the number of call retries remaining. If a connection fails for whatever reason (busy, no answer, etc.), TERM will bring up a pop-up window and ask if you want to retry to establish the connection. If no is answered, control is returned to the main menu. If yes is selected, TERM puts up a pop-up window and prompts for the following information: Number of call retries (0-9999) ------------------------------- This specifies the number of tries that TERM should make to establish a connection before giving up. Timeout after dialing waiting on a ring (1-60) --------------------------------------------- This delay specifies the number of seconds that TERM will wait before aborting a connection attempt. 30 seconds is the default valued used when TERM tries to connect the first time. If TERM detects a ring, it will reset the timeout counter to this value to allow extra time to establish the connection. 3.5.2. Multidialing 3.5.2. Multidialing The second way to select parameter files also initiates multi- dialing. This method allows a list of parameter files to be contructed. TERM will then sequence through this list and attempt to connect to each system. It will continue to try until a connection is established, or until it is aborted. To set up multidialing, position the cursor on the desired parameter file. Press the space bar to select the parameter file. An asterik (*) will appear beside the filename. The parameter file can be deselected by pressing the space bar again. When all parameter files have been selected (up to 10), press the return key to start the dialing process. TERM 3.10 08/21/85 page 18 TERMINAL MODE 4. TERMINAL MODE 4. TERMINAL MODE 4. TERMINAL MODE 4.1. Status Line 4.1. Status Line Once connection to the remote has been established, TERM clears the screen and prints a "Connected to" message followed by the Description specified in parameter setup. A status line is displayed across the bottom of the screen. It shows what functions are available and on which key. The string displayed on the status line may be modified. To globally change the status line for all parameter files, add the following line to TERM.CFG: status=F1:Sav F2:NuSav F3:Dir . . . where what follows the equals sign will be displayed in the status line. Adding the line to a parameter file (YOURFILE.TRM) will cause the status line change to be in effect only for the specific parameter file. A script file can also change the status line with the command: set status "THIS IS YOUR STATUS LINE" The script file can reset the status line by issuing the command: set status The following function keys are the default setup for TERM. All of these key values except PRNT and BRK may be modified. 4.2. Function Keys 4.2. Function Keys F1:Sav -- TERM allows saving received characters to a file. F1 toggles saving on and off. This is the equivalent function to the ASCII file download supported by other systems. F2:NuSav -- Allows the text saved by F1 to be saved in a file other than the one specified in the configuration section. Note that this does not start saving to the save file. The F1 key must be pressed to start saving after the new save file is specified. See the section on ASCII file downloads. F3:AscSnd-- Send an ASCII format file. Should be used only when xmodem transfers are unavailable or are not appropriate as when uploading messages to a bulletin board system. F5:Recv -- Download a file using the xmodem protocol. This key takes you to a screen where parameters are specified. F6:Send -- Upload a file using the xmodem protocol. This key takes you to a screen where parameters are specified. TERM 3.10 08/21/85 page 19 TERMINAL MODE F8:DOS -- Goto MSDOS. This feature works only under MSDOS 2.1+. It allows you to get into MSDOS and perform functions such as directory, etc. without disconnecting. F9:Time -- Displays the current date and time and the time elapsed since connection was established. F10:Parms-- Allows changing the communication parameters while connected. (Baud, parity, etc.) All of the parameters may be modified, but some host systems do not support changing the baud rate during the connection. Changing the number of stopbits will likely cause the transmission to become garbled. If parity stripping is turned off and bizzare characters appear intermixed with normal text, then it is likely that the remote is sending characters with parity. Turning parity stripping back on will probably correct the problem. F12:Abort-- Disconnect from remote. Other keys which have functions in this mode, but were not documented on the status line because of space limitations are: F4:Snap -- Saves the contents of the current screen to the current save file. This is used when something has come up on the screen before the save key (F1) could be pressed. F7:Keys -- Brings up function key definition menu. The keys specified here are local definitions, only in effect for the duration of the connection. The values may be saved to the current active parameter file by going through the parameter setup menu (F10) and specifying yes to save changes. ALT-D:Dir-- Prompts for the directory name and displays a directory listing including date, time and size. ALT-C:Cmnd--Prompts for a script file command to execute. The same script commands that can be executed from function keys may be entered here. ALT-L:Learn-- Enters 'learn mode' for automatic generation of script files. PRNT -- Toggles output to the printer (PRN) on and off. The characters that are received from the remote are sent to the printer as well. BRK -- This key will send a short break to the remote system. This is recognized as an "attention key" by some systems. (Most UNIX systems for example). TERM 3.10 08/21/85 page 20 SCRIPT FILES 5. SCRIPT FILES 5. SCRIPT FILES 5. SCRIPT FILES Script files are used for automatically logging on to a remote system. They can also be used to automatically download files unattended. The script file is located in the same directory as the parameter files. The script file has the same name as the parameter file with a .spt extension. The script file can be created with any text editor. The script file will automatically be executed unless a -n is specified on the command line when TERM is executed. During the processing of script files, pressing F12 will abort the script. You will still be connected to the remote. If a pattern match fails (MATCH, PROMPT, WAIT), the script will not abort. The failure must be handled in the script file. An option of -a on the command line will force the script to abort if the match fails. To allow the scripts to handle the failure again, you must quit TERM and reexecute it. 5.1. String Variables 5.1. String Variables Script commands may be executed from script files or from function keys (see the section on function keys). The lines may be up to 128 characters in length. If a percent sign (%) is encountered during processing of a line (except when enclosed in quotes in a string), and a string variable follows it, then the value of the string variable is substituted at that position in the line. For example: accept s1 "Save file name: " ; save %s1 This will read a line from the user into string variable s1. Then when the save command is executed, the value of s1 will be used as the save file name. Variable names may be as long as 32 characters and may consist of alphanumeric characters (A-Z, 0-9) and the underscore (_). Names must start with an alphabetic character. There are some reserved string variables which have special actions or values. These are: quitcmd -- The string that is sent to the host when HANGUPAFTER is specified during a file transfer. See the section on FILE TRANSFERS. status -- Setting the status variable will cause its value to be displayed on the status line. Deleting the status variable will cause the status line to return to the default value. Ex. status " F1:Sav F2:NuSav F3:Asend F4:Snap" date -- This variable will return the current date. It is not settable. Ex. echos %date time -- This variable will return the current time. It is not settable. TERM 3.10 08/21/85 page 21 SCRIPT FILES 5.2. Script File Commands 5.2. Script File Commands abort -- Abort processing of the current script file and return to terminal mode. accept -- Display the specified prompt, get a line of input, and store it in the specified string variable. Ex. accept path "Pathname: " alarm -- Ring the bell. asend -- Send an ascii file. Brings up a popup window which elicits transfer information and file name (F3 key). See the section on ASCII file sends. baud -- Change the baud rate to the specified value. Ex. baud 1200 cd -- Change the current directory. Accepts a string as an argument. If no argument is given, displays the current directory. Ex. cd "\usr" cls -- Clear the text screen. close -- Stop output to a save file and close it. Ex. close del -- Delete a file. Accepts a string as an argument. Ex. del "trash.jnk" delay -- Delay in milliseconds between sending characters. This delay is placed between characters sent using the SEND and SENDE commands. The default value is 0 which means no delay. Ex. delay 50 dir -- Shows a windowed directory listing. Brings up a popup window to prompt for the directory. If no path given, the default directory is assumed (ALT-D key). do -- Execute another script file. Recursion up to ten levels is supported. The file name extension must be .spt. Ex. do "RBBSPC" dos -- Invokes a copy of COMMAND.COM from TERM (F8 key). TERM is suspended until EXIT is typed at the command prompt. echo -- Echos the string argument to the screen. Ex. echo "Transferring to TI SIG" TERM 3.10 08/21/85 page 22 SCRIPT FILES echos -- Echos the string argument to the screen and to the save file if it is open. Ex. echos "Eat at Joe's" else -- If the last "if" expression evaluated FALSE then execute the rest of the line. Ex. else echo "Match failed" ; abort fail -- Abort execution of all nested levels of script files. The abort command only aborts the current script file. FAIL aborts all scripts. goto -- This statement transfers control in a script file to the specified label. Ex. goto here halt -- This is a special command and should only be used for function keys. This command implements the F12 (abort) function. hangup -- FAIL all script files and hangup the phone. Returns control back to MAIN MENU. if -- Evaluate the following expression and then execute the rest of the line if the expression is TRUE. See the section on script expressions. Ex. if !p1 echo "Its getting warm!" ; goto hell keys -- Brings up the menu to allow specifying function key definitions (F7 key). label -- Label the current line with the argument. The label name can consist of alphanumeric characters and the underscore (_). Current implementation restricts the label to being the only command on the line. Ex. label here learn -- Brings the learn mode for automatically generating a script file into play. See the section on automatic script file generation for more detail. (ALT-L key) limit -- This is the number of hundredths of a second after characters stop coming which will cause a match to fail. The default is 20 seconds (2000 hundredths). Ex. limit 200 TERM 3.10 08/21/85 page 23 SCRIPT FILES match -- Match a string. If this string is received then the match succeeds. Note that this command does not care about the context of the string. If you match "new" then it will also match "renew", etc. LIMIT controls the timeout of this command. Case of characters is significant. Match string may be up to 10 characters long. Match is a special case of pattern matching and success may be tested with variable p10. Example: match "more (y/n)" if !p10 echo "Match of more failed" ; abort obey -- Forces the execution of the string argument. The example shows the implementation of the ALT-C key. Ex. accept s1 "Command: " ; obey %s1 output -- Turns the output of received characters during script processing on or off. Arguments are ON or OFF. Ex. output on parms -- Brings up a popup menu to allow changing of communication parameters while connected to a remote (F10 key). pat -- Specify a pattern (0-9) to look for when the WAIT command is executed. Up to 10 patterns may be watched for simultaneously. A pattern may be up to 10 characters in length. With no options, this command acts like the MATCH command (when used in conjuction with WAIT). An equivalent of a MATCH command would be: pat 1 "more (y/n)" ; wait The first argument to the PAT command is the pattern number (0-9). The second argument is the string to watch for. An optional third argument is a string which is to be transmitted (or @executed) when the match occurs. For example: pat 1 "more (y/n)" "y\r" ; wait Options to the PAT command allow a WAIT to continue when a match occurs (-c), and can make the PAT command act like the PROMPT command (-p). pat -cp 1 "more? (y/n) " "y\r" ; wait The previous command would wait until the prompt string was matched, send the appropriate response, and continue execution of the WAIT command. Specifying PAT CLEAR will clear all current pattern definitions. See the WAIT and PROMPT commands. TERM 3.10 08/21/85 page 24 SCRIPT FILES pause -- Waits for the specified number of milliseconds before proceeding. The example will wait for 4 seconds. Ex. Pause 4000 prompt -- Match a prompt string. It is assumed that the string to be matched is a prompt. In other words, a sequence of characters is received and then a pause waiting for user input. LIMIT and THRESHOLD control the timing of this command. Case of characters and blanks are significant. The match string may be up to 10 characters long. Prompt is a special case of pattern matching and success of prompt may be tested for with p10. Example: prompt "username: " if !p10 echo "Prompt for username: lost" purgek -- Purge all keyboard type-ahead. r -- Brings up a window to elicit information to start an xmodem file receive (F5 key). rem -- When script output is on, this line does nothing. When script output is off, this line is displayed in a pop-up window until another rem command is encountered or until the script ends. This is very useful to show the status of script files during autologon. Ex. rem "*** Verifying Password ***" s -- Brings up a window to elicit information to start an xmodem file send (F6 key). save -- Open a save file and start output. The default path is the receive path. If no arguments are specified, then a popup menu is brought up to elicit the required information to open a new save file (F2 key). Other options are: 'save on' - turn saving to file on 'save off' - turn saving to file off 'save toggle' - toggle saving to file on or off (F1 key) Ex. save "e:/usr/comm/term/term.sav" send -- Send a string. Control or special characters can be entered using the 'C' programming language conventions. A backslash (\) followed by an r (for return), b (for backspace), t (for tab), or an x followed by a two-digit hexidecimal number (ie. \x0b for form feed). See appendix A. Ex. send "Greg Gilley\r" TERM 3.10 08/21/85 page 25 SCRIPT FILES sende -- Send a string and wait for echo of each char. This command does not check if the echoed character matches the one sent and could be used in the case of passwords when dots, etc. are echoed. This command allows pacing with the target system and helps to insure that you do not send characters faster than it can receive them. Ex. sende "54001,234\r" set -- Set the specified string variable to the value which follows. If no arguments are specified then the current string variable definitions are displayed. String variables may be deleted by specifying the set command, the variable name, but no value. The command set s1 will delete the string variable s1. Ex. set quitcmd "\x03\poff\r" sleep -- Waits the specified number of tenths of a second before proceeding with script file execution. The example will wait 4 seconds. Ex. sleep 40 snap -- Save the contents of the screen to the current save file (F4 key). threshold -- This command is used in conjunction with the PROMPT and WAIT commands. While PROMPT or WAIT is waiting for a prompt, this is the amount of time to wait after characters stop coming from the remote before testing for a match. The time is specified in tenths of a second. Ex. threshold 20 time -- Displays the current date and time and the time elapsed since the connection was established (F9 key). wait -- Monitor incoming characters and wait until a pattern specified by the PAT command is matched. If a pattern is not matched and no characters are received for the time period specified by LIMIT, the wait will abort and set the NONE expression variable to TRUE. An optional numeric argument specifies an override to LIMIT in seconds. The command wait 3 will only wait 3 seconds after characters stop coming to abort the wait. TERM 3.10 08/21/85 page 26 SCRIPT FILES When a pattern is matched, a corresponding expression variable (p0-p9) is set and may be tested with IF and WHILE statements. The WAIT command will normally stop after a pattern is matched. The PAT command has an option (-c) which will flag the pattern as matched, send any optional string, and continue waiting for pattern matches. while -- While the following expression is TRUE, execute the rest of the line. The expression variable L is a special case to allow counting the number of loops in a while statement. It is incremented each time the statement is executed. Ex. while (L<3) echo "Hi there!" See appendix A for an explanation of characters which can be placed in a script string. TERM 3.10 08/21/85 page 27 SCRIPT EXPRESSIONS 5.3. Script Expressions 5.3. Script Expressions The expressions in script files support almost the full C language expression capability. The arithmetic operators are supported: addition (+), subtraction (-), multiplication (*), division (/), and modulus (%). The modulus operator returns the remainder of a division operation, so 5 % 2 would return 1. The relational operators are: greater than (>), less than (<), greater than or equal to (>=), less than or equal to (<=), equal to (==), and not equal to (!=). The logical operators are: logical and (&&) and logical or (||). The unary logical operator not (!) is supported. The bitwise logical operators supported are: bitwise and (&), bitwise or (|), bitwise exclusive or (^), left shift (<<) and right shift (>>). One unary operator is supported as well: one's complement (~). The conditional operator or conditional expression (?:) is supported. It takes the place of a series of statements such as: if (a > b) z = a ; else z = b ; This statement can be rewritten as: z = (a > b) ? a : b ; The script expressions also support the operator precedence level used by the C language. The following table lists the operators in order from highest precedence to lowest. Those entries on the same line have equal precedence and are evaluated according to the corresponding grouping entry. For example, multiplication and division are higher precedence than addition and subtraction so the expression 5*3+4/2 would evalute to 17 (15+2). Note that the bitwise operators fall below the logical operators on the chart. This means that an expression which ANDs two values together and compares the result to another value would have to be written as ((a & b) == 4). TERM 3.10 08/21/85 page 28 SCRIPT EXPRESSIONS ======================================================= | OPERATOR | GROUPING | ======================================================= | () highest| left to right | |--------------------------|--------------------------| | ! ~ | left to right | |--------------------------|--------------------------| | * / % | left to right | |--------------------------|--------------------------| | + - | left to right | |--------------------------|--------------------------| | << >> | left to right | |--------------------------|--------------------------| | < <= > >= | left to right | |--------------------------|--------------------------| | == != | left to right | |--------------------------|--------------------------| | & | left to right | |--------------------------|--------------------------| | ^ | left to right | |--------------------------|--------------------------| | | | left to right | |--------------------------|--------------------------| | && | left to right | |--------------------------|--------------------------| | || | left to right | |--------------------------|--------------------------| | ?: lowest| right to left | ------------------------------------------------------- Table 5-1: Operators in Order of Descending Priority Table 5-1: Operators in Order of Descending Priority Table 5-1: Operators in Order of Descending Priority Not all of the operators will be useful in the current release of TERM. In particular, the bitwise operators will probably not need to be used at this time. There are several variables and functions which are defined within TERM. 5.4. Variables 5.4. Variables baud -- This variable has the value of the current active baud rate for TERM. For 1200 baud, it has the value 1200. Ex. if (baud == 1200) echo "you're talking fast" c -- The value of this variable is set depending upon the state of the carrier detect signal on the modem. If the carrier detect is active, its value is one, otherwise it is zero. Ex. if (!c) echos "carrier lost" ; hangup TERM 3.10 08/21/85 page 29 SCRIPT EXPRESSIONS l -- This variable has a special use with the WHILE command. It counts the number of times the while loop executes. Example: while (L<3) echo "outer" ; while (l<2) echo " inner" q -- Q returns TRUE if characters are queued up from the host. If characters have been received, but not yet processed, Q will return TRUE. This variable can be used to help the remote system "recognize" you. Example: while (L<5 && !q) send "\r" ; pause 30 if (!q) echo "NO RESPONSE" ; abort p0-p9 -- These variables are set depending upon the pattern flags set up by the PAT command and the WAIT command. If a pattern is matched, the variable for that pattern (p0 through p9) is set to one otherwise, its value is zero. Ex. if (p1 || p2) echo "We matched pattern 1 or 2" p10 -- This variable is set depending on the result of a MATCH or PROMPT command. If the MATCH or PROMPT statement was sucessful, p10 will be TRUE. none -- If no patterns were matched during a WAIT command (in other words, the WAIT timed out), then this flag is set to one, otherwise it is zero. 5.5. Functions 5.5. Functions f("file") -- Checks to see if the specified file exists and returns a one if it exists and a zero if it does not. Example: set fname "junk.out" if f(%fname) echo "FILE ALREADY EXISTS" ; goto again else save %fname TERM 3.10 08/21/85 page 30 AUTOMATIC SCRIPT GENERATION 5.6. Automatic Script Generation 5.6. Automatic Script Generation After using the script files for some time myself, I noticed how much trouble it was to write down (or capture) all of the logon prompts, etc. that are required to log on to a system. Wouldn't it be nice if the computer did all that for you? Well, I finally got fed up and this is the result. The script generator will not generate perfect script files, but it sure does help with the prompt/response problem. The script generator works by watching the communcations line for characters and then the responses to those characters. He keeps track of the last several characters received and when you start typing, he figures that a prompt must have been received. DO NOT TYPE AHEAD. This will only serve to confuse the prompt watcher. Just go through your login sequence normally (backspaces should be handled properly), and the script file will be generated properly. To enter the script generator, press the ALT-L key after the connection has been established. This will execute the LEARN command and start the generation process. Then proceed with your normal login sequence. Once you have reached the point where you want control of the host each time you logon (probably at some command prompt), press the F12 key to end the script generation. The script will be written to a file with the same name as the current active parameter file, but with a .TST extension. If a file with the .TST extension already exists, then it will be changed to .TS1. If the .TS1 file exists, it will write to .TS2 and overwrite any existing .TS2 file. You then need to edit the file to add any changes that are necessary and rename it to .SPT. The reason editing is probably required is that the current implementation cannot recognize delays between characters. Most systems require you to press one or two carriage returns after connection before it will recognize you. These carriage returns usually have pauses between them. Therefore, the first part of the script file will probably have to be edited to add these delays. TERM 3.10 08/21/85 page 31 AUTOMATIC SCRIPT GENERATION 5.7. Example Script Files 5.7. Example Script Files This is a script file that I use for RBBS-PC type boards. output off rem "*** Connecting to Jimnet ***" while (L<5 && !q) send "\r" ; sleep 40 if (!q) echo "NO RESPONSE" ; abort rem "*** Answering useless prompts ***" prompt "Name? " if (!p10) echo "Name? NEVER MATCHED" ; abort rem "*** Sending name ***" sende "FIRST\r" match "Name? " sende "LAST\r" match "echo)? " rem "*** Sending Password ***" send "PASSWORD\r" Just replace FIRST with your first name, LAST with your last name, and PASSWORD with you password. Be forewarned that there is really no standard prompt sequence for RBBS-PC boards. Do not use the output off statement until the script has been tested with the target system. Here is one that might be used for COMPUSERVE(tm). output off rem "*** Connecting to Compuserv ***" sleep 30 send "\x03" prompt "User ID: " rem "*** Sending user id ***" sende "USER,ID\r" rem "*** Sending password ***" prompt "Password: " send "PASSWORD\r" sleep 20 match "!" Replace USER,ID with your user id, and PASSWORD with you password. You could even add commands to send you to your favorite SIG. TERM 3.10 08/21/85 page 32 FILE TRANSFERS 6. FILE TRANSFERS 6. FILE TRANSFERS 6. FILE TRANSFERS 6.1. Xmodem, Modem7, Telink 6.1. Xmodem, Modem7, Telink TERM supports several file transfer protocols. All of these transfers are based on the xmodem transfer protocol originally devised by Ward Christensen. The xmodem protocol allows transfer of files with error correction. It allows single files to be transferred between systems and is almost universally supported. Modem7 is an extension of xmodem and allows batch mode file transfers. This means that multiple files can be sent with one command (*.exe for example). Modem7 is supported mainly on CP/M based bulletin boards. Telink is an extension to modem7 done by Tom Jennings, author of the FIDO bbs system. It allows the batch file transfers but also transfers file information. File size, date, and time are all sent across so that the received file is virtually identical to the original. Telink is supported on the FIDO bulletin board system. TERM supports CRC (cyclic redundancy check) error checking as well as the standard checksum error checking. Some bulletin boards do not support the CRC type of error checking. Check with the system operator of the board before trying. Boards that do support CRC checking are Compuserve, FIDO, and most CP/M based systems. Boards that do not support CRC checking are RBBS-PC, TBBS, and NOCHANGE. Some RBBS-PC and TBBS boards are beginning to support CRC error checking. TERM reports and keeps count of errors during file transmission. If an error occurs, TERM will either resend the block or if receiving, will request a retransfer. The NAKed blocks count shows the number of errors during a send. The Error Blocks count shows the number of errors during a receive. The error count is given only as an indication of how the transfer is proceeding. If too many errors are occurring, you may wish to abort the transfer (via F12) and retry again later. When receiving, if ten errors occur in a row, TERM will abort the transfer. The connection is simply too poor to facilitate a transfer. TERM is set up to make file transfers with the highest possible throughput. This causes problems for some systems such as mainframes where long delays between characters sent by the mainframe can cause synchronization problems. TERM allows you to modify the timing parameters to allow transfers to occur with these systems. To change them, edit the parameter file and add two lines: xm_char=10 xm_block=20 (Please do not put spaces between the characters.) Xm_char specifies maximum delay between characters in seconds. Xm_block specifies maximum delay between blocks in seconds. The values shown above are the ones recommended for Compuserve. The default values are xm_char=1 and xm_block=10. TERM 3.10 08/21/85 page 33 FILE TRANSFERS When a receive is started, most systems will tell you approximately how long the transfer will take and how many "sectors" (or "blocks") the file takes. You can use the number of sectors to help you keep track of the transfer. Enter the number of sectors at the prompt when setting up a file receive. If you do not know the number of sectors, but do know the size of the file, then enter the size of the file in bytes followed by an 'L' (ie. 34567L). TERM will calculate the number of sectors for you. TERM will also check the amount of disk space available on the disk and determine if there is room for the file. There is an internal buffer that TERM uses for storing sections of the file as it is being transmitted. TERM buffers the incoming and outgoing sectors to reduce the amount of time spent accessing the disk during a transfer. The default size of this buffer is 16K bytes. This size is good for floppy-based systems, but not really necessary for winchester based systems. Winchester users may want to reduce the size of this buffer and allow TERM to run in a smaller amount of memory. To change this buffer, edit the configuration file (TERM.CFG) and add the following line: bufsize=4096 (please do not put extra spaces). This will set the buffer size to 4K. You can set it to any value and TERM will round it to a multiple of 128 (the size of a block during transfer). It is recommended that the size does not exceed 32K bytes. Users of systems with 128K memory may need to reduce the size of this buffer to get TERM to run. TERM 3.10 08/21/85 page 34 ASCII FILE TRANSFERS 6.2. ASCII File Transfers 6.2. ASCII File Transfers ASCII file transfers are generally more difficult to achieve than xmodem based transfers. The xmodem file transfer protocol includes handshaking to keep the computers from sending data too quickly to each other. When working with ASCII text, however, most systems do not have provisions for controlling data flow. If both computers support xon/xoff handshaking, this makes ASCII file transfers easier. But most microcomputer bulletin board systems do not support it, so the burden of regulating data flow falls on the system that is sending the data. 6.2.1. ASCII file send 6.2.1. ASCII file send TERM is set up to allow ASCII files to be sent to another system under most conditions. A number of conditions are changeable to allow pacing with the remote system. When ASCSND is selected (F3 key), TERM brings up a menu and prompts for the following information: Wait for character echo (y/n) ----------------------------- Answering yes will cause TERM to wait for the echo of the last character sent before sending the next one. This option will cut the effective speed of the transfer in half, but is almost essential for systems which do not allow type-ahead. Delay between characters (msecs) -------------------------------- This parameter specifies the delay in milliseconds that TERM will pause after sending a character before sending the next one. Delay after sending eol (msecs) ------------------------------- TERM breaks ASCII files into their logical components, lines, while sending them. This parameter specifies the delay in milliseconds that TERM pauses after sending the end-of-line to the receiving system. EOL string (CR) --------------- This parameter specifies the characters that will be sent to the receiving system to indicate end-of-line. TERM will intercept carriage return/linefeed sequences and send this string in their place. The default value is carriage return only. See appendix A for valid characters. Prompt after EOL ---------------- This is the string that the receiving system uses to prompt for the next line. TERM will wait for this prompt after sending an end-of-line sequence. TERM 3.10 08/21/85 page 35 ASCII FILE TRANSFERS View data (y/n) --------------- This allows the data to be viewed as it is being transmitted. While the transfer is in progress, TERM will display a flashing message in the status line to indicate that something is happening. 6.2.2. ASCII file receive 6.2.2. ASCII file receive TERM uses the save file to handle ASCII file receives. To download a file, press F2 for NuSav. This will bring up a menu allowing a new save file to be specified. Enter the name of the file. If the file already exists, TERM will display a message. The destination file may be appended to or created from scratch. Once the file information has been specified, you will reenter terminal mode. SAVING HAS NOT BEGUN AT THIS POINT. To begin saving, press the F1 (Sav) key. This will start the file receive. When the transfer is completed, press F1 again to turn saving off. If you wish to be able to capture information to the file TERM.SAV again, press F2 (NuSav) and specify TERM.SAV as the save file name. If you want saving to the new save file to begin automatically after it is specified with NuSav, the F2 key may be modified to do this. From the MAIN MENU, press the F7 key (Fkeys). A list of the current definitions is shown. In answer to the prompt, enter F2 as the key name. Specify the following string as the key value: @save ; save on Enter no to the prompt for defining more keys. The F2 key will now automatically begin saving after the save file is specified. TERM 3.10 08/21/85 page 36 TERMINAL EMULATION 7. TERMINAL EMULATION 7. TERMINAL EMULATION 7. TERMINAL EMULATION 7.1. VT100 Escape Sequences Supported 7.1. VT100 Escape Sequences Supported The following escape sequence in VT100 mode are supported (wholly or in part): ESC 7 Save cursor position and attribute ESC 8 Restore cursor position and attribute ESC D Move down one line in region ESC E Beginning of next line in region ESC H Horizontal tab set ESC M Move up one line in region ESC Z Status reports (returns ESC [?1;0c ) ESC c Reset terminal ESC = Alternate keypad mode ESC > Numeric keypad mode ESC (0 Graphics primary character set ESC (A UK primary character set ESC (B US primary character set ESC )0 Graphics secondary character set ESC )A UK secondary character set ESC )B US secondary character set ESC [ Pl;Pc H Position cursor ESC [ J Erase to end of screen ESC [ 0 J Erase to end of screen ESC [ 1 J Erase to beginning of screen ESC [ 2 J Erase entire screen ESC [ K Erase to end of line ESC [ 0 K Erase to end of line ESC [ 1 K Erase to beginning of line ESC [ 2 K Erase entire line ESC [ Pn L Insert line ESC [ Pn M Delete line ESC [ Pn P Delete character ESC [ Pn c Status reports (returns ESC [?1;0c ) ESC [ Pl;Pc f Position cursor ESC [ g Horizontal tab clear (current column) ESC [ 0 g Horizontal tab clear (current column) ESC [ 3 g Clear all tabs ESC [ Pn h Set mode (see modes below) ESC [ Pn l Reset mode (see modes below) ESC [ Pn m Set attributes (0-default, 1-bold, 4-underline, 5-blink, 7-reverse, 30-black, 31-red, 32-green, 33-yellow, 34-blue, 35-magenta, 36-cyan, 37-white) ESC [ 5 n Status report (returns ESC[0n) ESC [ 6 n Report cursor position ESC [ Pt;Pb r Define scrolling region In addition, a non-standard escape sequence was added to control the cursor type. This was added to support the Octacomm card for TI minicomputers. ESC [ Pn v Set cursor type (0-on, 1-off, 3-steady, 5-blink) TERM 3.10 08/21/85 page 37 TERMINAL EMULATION The modes which are supported by this emulator and can be set by the Set mode escape sequence and reset by the Reset mode escape sequence include the following. ?1 Cursor key mode ?2 VT52 mode (Reset mode only) 4 Insert character mode ?5 Reverse screen ?6 Origin mode ?7 Auto wrap mode ?8 Auto repeat 20 Newline mode 7.2. VT52 Escape Sequences Supported 7.2. VT52 Escape Sequences Supported In VT52 mode, the following escape sequences are supported: ESC < Enter ANSI (VT100) mode ESC = Enter alternate keypad mode ESC > Numeric keypad mode ESC F Select graphics set ESC G Select US character set ESC A Move cursor up ESC B Move cursor down ESC C Move cursor right ESC D Move cursor left ESC H Home cursor ESC Y Pl Pc Position cursor ESC I Reverse line feed ESC K Erase to end of line ESC J Erase to end of screen ESC Z Identify -- response ESC / Z 7.3. Cursor Keys 7.3. Cursor Keys The cursor keys generate the following codes depending on the cursor key mode which is set by a host application program and on the emulation mode (VT100 or VT52). Key Cursor Mode Reset Cursor Mode Set VT52 Up ESC [ A ESC O A ESC A Down ESC [ B ESC O B ESC B Right ESC [ C ESC O C ESC C Left ESC [ D ESC O D ESC D Table 7-1: Cursor Keys Table 7-1: Cursor Keys Table 7-1: Cursor Keys TERM 3.10 08/21/85 page 38 TERMINAL EMULATION 7.4. Numeric Keypad 7.4. Numeric Keypad The keypad on the right side of the TI PC has the same configuration as the VT100 keypad. The top four keys on the TI PC keypad correspond to the PF keys on the VT100 keypad and always generate the PF key sequence. The other keypad keys either generate their labeled code or a special escape sequence depending on the alternate keypad mode set by a host application program. The keypad keys generate the following codes when in alternate keypad mode and their labeled code when in numeric keypad mode. The emulation mode (VT100, VT52) also affects the escape sequence generated. KEY VT100 VT52 KEY VT100 VT52 0 ESC O p ESC ? p 9 ESC O y ESC ? y 1 ESC O q ESC ? q , ESC O l ESC ? l 2 ESC O r ESC ? r - ESC O m ESC ? m 3 ESC O s ESC ? s . ESC O n ESC ? n 4 ESC O t ESC ? t ENTER ESC O M ESC ? M 5 ESC O u ESC ? u PF1 = ESC O P ESC P 6 ESC O v ESC ? v PF2 + ESC O Q ESC Q 7 ESC O w ESC ? w PF3 SPAC ESC O R ESC R 8 ESC O x ESC ? x PF4 TAB ESC O S ESC S Table 7-2: Numeric Keypad Codes Table 7-2: Numeric Keypad Codes Table 7-2: Numeric Keypad Codes Break Key --------- Pressing shift-break will cause a short break to be sent. This is recognizable as an "attention" key on many systems. TERM 3.10 08/21/85 page 39 'C' Language characters A. 'C' Language characters A. 'C' Language characters A. 'C' Language characters Throughout TERM, when string parameters are requested, strings of the format used by the 'C' language may be specified. In 'C', strings consist of sequences of ASCII characters with special control sequences mixed in. The backslash character (\) is used as an "escape" character to designate these control sequences. The control sequences consist of a backslash (\) followed by: r Carriage Return (CR) n Line Feed (LF) f Form Feed (FF) b Back Space (BS) t Tab (HT) p A special case which inserts a one second pause. x A special case which allows entering the hexadecimal value of the character directly. The 'x' is followed by two hex digits. For example, \x0d is a carriage return (also \r). Also any characters which may be interpreted as delimeters such as backslash, or quotation marks. These are entered in a similar fashion as backslash (\) followed by another backslash would be translated to a single backslash). To send your name terminated by a carriage return, the command would be: send "greg gilley\r" To send a control-C (^C), use send "\x03" where 03 is the hexadecimal value of a control-C character. TERM 3.10 08/21/85 page 40 LINE EDITING FEATURES B. LINE EDITING FEATURES B. LINE EDITING FEATURES B. LINE EDITING FEATURES When TERM prompts for information, a number of keys are available for editing the line. The left and right arrow keys do non- destructive cursor movement. Backspace will delete characters. INS will start insert mode -- characters are inserted at the cursor. The cursor changes shape to indicate the mode. A full cursor shows overtype mode; a half cursor shows insert mode. DEL will delete a character at the cursor. SHIFT-DEL will delete to the end of the line. SHIFT-left arrow will move to the beginning of the line. SHIFT-right arrow or TAB will move to the end of the line. RETURN will end the editing. Whenever you are in a "window" answering prompts, the up and down arrow keys can be used to move back and forth (up and down?) between the items. If the arrows will not move you, then the value is illegal or the value is required and you must make an input. TERM 3.10 08/21/85 page 41 MSDOS CRITICAL ERROR HANDLING C. MSDOS CRITICAL ERROR HANDLING C. MSDOS CRITICAL ERROR HANDLING C. MSDOS CRITICAL ERROR HANDLING TERM will allow you to recover from MSDOS critical errors in a way that is a little more aesthetically pleasing than the way command.com handles them. An error screen is shown when the error occurs. This is a replacement for the all too familiar DOS prompt of Abort, Retry, Ignore. In most cases, you will want to specify Retry or Ignore. Press the R key or the I key to accomplish this. In some instances, however, the only available option is to Abort. Press the A key to accomplish this. Under DOS 2.0, aborting a critical error will cause the current program to be terminated and control returned to DOS. If abort is selected, TERM will clean up before DOS terminates it so that you will not have to reboot your system. If the critical error involved the printer, ie. printer not ready, then the PRNT key toggle will be turned off and control returned to TERM. This is so that if the PRNT key is accidentally pressed and you do not have a printer, you will not have to abort your current session. TERM 3.10 08/21/85 page 42 EXTERNAL MODEMS D. EXTERNAL MODEMS D. EXTERNAL MODEMS D. EXTERNAL MODEMS TERM attempts to support most any external modem. It comes configured for Smartmodem compatible modems. Smartmodem compatible means TRULY Smartmodem compatible. For a Smartmodem, the switch settings should be: Switch Position Meaning ------ -------- ------------------------------------------ 1 UP Use DTR to hangup the modem. 2 UP Result codes sent as English words. 3 DOWN Send result codes. 4 DOWN Do not echo commands. 5 DOWN Do not answer incoming calls. 6 UP Issue carrier detect only on connection. 7 UP Single line telephone. 8 DOWN Enable command recognition. Table D-1: Smartmodem switch settings Table D-1: Smartmodem switch settings Table D-1: Smartmodem switch settings TERM uses a set of definitions to describe how the modem responds to various commands. The definitions are specified by editing TERM.CFG and adding the commands to the file. Any text editor may be used as long is it does not put formatting control characters in the file. EDLIN will work fine. These definitions, except ehs, are limited to 10 characters and are described below. Since these strings have default values, they must be forced to null if no value is desired. To set no "OK" string, use eok= ehs -- external hangup string. This is the command to tell the modem to hangup. Ususally, it is preceded by some escape sequence to put the modem into command mode. On modems which support the DTR RS232 line, this string is not necessary. If ehs is not specified, then DTR is dropped to force the modem to hangup and return to command mode. The default value is blank (use DTR). Example: ehs=+++\p\pATH0\r eok -- external "ok" string. This string is returned from the modem after a sucessful command. TERM uses this string in the external modem initialization to verify modem response. Default value is "OK". TERM will wait 10 seconds after the initialization string is sent for the modem to respond with this string. If not specified, modem response is ignored. Example: eok=OK TERM 3.10 08/21/85 page 43 EXTERNAL MODEMS ebs -- external busy string. String returned by modem if a busy signal detected. Default value is "BUSY". Example: ebs=BUSY ecs -- external connect string. String returned by modem after carrier is detected. Default value is "CONNECT". If ecs is not specified, TERM will wait for the carrier detect line to go true. Example: ecs=CONNECT ers -- external ring string. String returned by modem when a ring is detected. Default value is "RING". Example: ers=RING enc -- external no carrier string. String returned by modem if it was unable to connect, or if carrier was not detected. Default value is "NO CARRIER". eas -- external answer string. Transmitted to modem to place it in answer mode. Default value is "ATS0=1\r". TERM 3.10 08/21/85 page 44 INDEX INDEX INDEX INDEX A A A abort, 19, 25 accept, 25 addition, 31 alarm, 25 ALT-C, 23 ALT-D, 23 ALT-L, 23 ANSI graphics, 17 ASCII receive, 39 send, 38 asend, 25 B B B baud, 16, 23, 25, 32 bell, 15, 25 break, 23, 42 BRK, 23, 42 bufsize, 37 busy handling, 17 C C C carrier detect, 32, 47 cd, 25 change directory, 25 checksum, 36 close, 25 cls, 25 color, 13 command line, 11 options, 24 COMMAND.COM, 25 Compuserve, 17, 35 configuration, 12, 13 file, 11, 37 CRC, 36 D D D data bits, 17 date, 24 del, 25 delay, 25 delete file, 25 dialing, 14, 21 mode, 14 multi, 12, 21 redial, 14 retry, 21 timeout, 15, 21 dir, 25 direct connection, 20 directory, 25 change, 25 TERM 3.10 08/21/85 page 45 INDEX display intensity, 13 division, 31 do, 25 dos, 25 E E E echo, 25 echos, 26 editing, 44 else, 26 environment, 11 error transmission, 36 errors, 45 escape sequences, 40, 42 expression script, 26, 30, 31 variable, 30 F F F fail, 26 file transfer, 36 ascii, 38 function, 33 function keys, 12, 16, 19, 22, 23, 26, 44, 45 global, 12 G G G goto, 19, 26 H H H halt, 26 hangup, 24, 26 I I I if, 26 K K K keys, 19, 26 arrow, 44 cursor, 41 numeric keypad, 42 L L L label, 19, 26 learn, 26, 34 limit, 26, 27, 28, 29 logical, 31 M M M main menu, 12 match, 26, 27, 29 limit, 26 TERM 3.10 08/21/85 page 46 INDEX modem autodial, 14, 17, 20 external, 14, 17, 20, 46 internal, 13, 14, 16, 17, 20 modem7, 36 modulus, 31 monochrome, 13 multidialing, 12, 21 multiplication, 31 O O O obey, 27 operator arithmetic, 31 bitwise, 31 conditional, 31 logical, 31 precedence, 31 relational, 31 options, 11 output, 27 override, 20 P P P parameter modify, 23, 27 setup, 12, 16, 23 parameter file, 11, 12, 14, 16, 19, 20, 21 xmodem, 36 parity, 17, 23 strip, 17, 23 parms, 27 pat, 27, 33 pattern, 27, 28, 29 variable, 33 pause, 28 phone number, 17 port override, 20 specification, 13 printer, 23, 45 PRNT, 23 prompt, 25, 28, 29 purgek, 28 Q Q Q q, 33 quitcmd, 24 R R R r, 28 relational, 31 rem, 28 TERM 3.10 08/21/85 page 47 INDEX S S S s, 28 save file, 14, 22, 24, 25, 26, 28, 29 script, 19, 24 abort, 25, 26 automatic, 23, 26, 34 command, 23 example, 35 expression, 26, 30, 31 file, 11 nest, 25 output, 27, 28 variable, 30 send, 28 ascii, 25 delay, 25 string, 28, 29 sende, 29 set, 29 sleep, 29 snap, 23, 29 snapshot, 23, 29 status intensity, 13 status line, 22, 24 stopbits, 17, 23 string variable, 24, 25 subtraction, 31 T T T telink, 36 terminal emulation, 17, 40 type, 17 threshold, 28, 29 time, 24, 29 V V V variable expression, 32 string, 22, 24, 29 VT100, 17, 40, 42 VT52, 17, 41, 42 W W W wait, 27, 29, 33 while, 30, 33 TERM 3.10 08/21/85 page 48 INDEX X X X xmodem buffer, 37 receive, 28, 36, 37 send, 28, 36 timing, 36 xm_block, 36 xm_char, 36 Xon/Xoff, 17 TERM 3.10 08/21/85 page 49